Skip to content

Add index field to Position #171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 7, 2022
Merged

Add index field to Position #171

merged 1 commit into from
Apr 7, 2022

Conversation

jamesdbrock
Copy link
Member

@jamesdbrock jamesdbrock commented Apr 1, 2022

Add index field to Position

Regarding #162 #94 #172

I want to get rid of the column and line tracking in the Parser, and make that tracking an optional feature. This is a step towards that.


Checklist:

  • Added the change to the changelog's "Unreleased" section with a link to this PR and your username
  • Linked any existing issues or proposals that this pull request should close
  • Updated or added relevant documentation in the README and/or documentation directory
  • Added a test for the contribution (if applicable)

@jamesdbrock jamesdbrock changed the title Pos index Add index field to Position Apr 1, 2022
@jamesdbrock
Copy link
Member Author

jamesdbrock commented Apr 1, 2022

Before this PRAfter this PR

digit 10000

digit 10000

runParser many digit 10000
mean   = 6.01 ms
stddev = 5.06 ms
min    = 4.32 ms
max    = 37.22 ms
runParser many digit 10000
mean   = 6.50 ms
stddev = 6.88 ms
min    = 4.55 ms
max    = 51.12 ms
runParser Array.many digit 10000
mean   = 63.95 ms
stddev = 6.11 ms
min    = 58.86 ms
max    = 78.87 ms
runParser Array.many digit 10000
mean   = 63.01 ms
stddev = 5.79 ms
min    = 58.09 ms
max    = 78.03 ms
StringParser manyRec CodePoints.anyDigit 10000
mean   = 6.68 ms
stddev = 4.52 ms
min    = 4.55 ms
max    = 20.99 ms
StringParser manyRec CodePoints.anyDigit 10000
mean   = 6.67 ms
stddev = 4.53 ms
min    = 4.52 ms
max    = 20.89 ms
StringParser manyRec CodeUnits.anyDigit 10000
mean   = 5.05 ms
stddev = 361.02 μs
min    = 4.54 ms
max    = 7.63 ms
StringParser manyRec CodeUnits.anyDigit 10000
mean   = 4.89 ms
stddev = 410.07 μs
min    = 4.42 ms
max    = 8.01 ms
Regex.match \d* 10000
mean   = 321.81 μs
stddev = 126.63 μs
min    = 283.67 μs
max    = 1.58 ms
Regex.match \d* 10000
mean   = 363.72 μs
stddev = 149.84 μs
min    = 318.50 μs
max    = 1.76 ms

string 100000

string 100000

runParser many string
mean   = 12.93 ms
stddev = 1.93 ms
min    = 12.12 ms
max    = 33.53 ms
runParser many string
mean   = 13.19 ms
stddev = 1.70 ms
min    = 12.34 ms
max    = 28.36 ms
Regex.match literal*
mean   = 421.78 μs
stddev = 111.60 μs
min    = 392.09 μs
max    = 1.75 ms
Regex.match literal*
mean   = 425.79 μs
stddev = 152.25 μs
min    = 388.07 μs
max    = 2.02 ms

many anyChar 10000

many anyChar 10000

runParser many anyChar 10000
mean   = 6.25 ms
stddev = 625.75 μs
min    = 5.80 ms
max    = 10.13 ms
runParser many anyChar 10000
mean   = 6.55 ms
stddev = 1.95 ms
min    = 5.75 ms
max    = 19.26 ms
runParser Array.many anyChar 10000
mean   = 63.79 ms
stddev = 6.59 ms
min    = 58.24 ms
max    = 85.29 ms
runParser Array.many anyChar 10000
mean   = 63.13 ms
stddev = 6.07 ms
min    = 58.39 ms
max    = 79.88 ms

skipMany anyChar 10000

skipMany anyChar 10000

runParser skipMany anyChar 10000
mean   = 3.44 ms
stddev = 1.24 ms
min    = 3.10 ms
max    = 11.67 ms
runParser skipMany anyChar 10000
mean   = 3.26 ms
stddev = 579.56 μs
min    = 2.99 ms
max    = 6.49 ms

sepBy 10000

sepBy 10000

runParser sepBy 10000
mean   = 8.61 ms
stddev = 1.10 ms
min    = 8.06 ms
max    = 16.08 ms
runParser sepBy 10000
mean   = 8.52 ms
stddev = 929.47 μs
min    = 8.00 ms
max    = 14.67 ms

sepEndBy1 10000

sepEndBy1 10000

runParser sepEndBy1 10000
mean   = 5.99 ms
stddev = 597.20 μs
min    = 5.56 ms
max    = 9.58 ms
runParser sepEndBy1 10000
mean   = 6.01 ms
stddev = 1.68 ms
min    = 5.03 ms
max    = 15.60 ms

chainl 10000

chainl 10000

runParser chainl 10000
mean   = 4.54 ms
stddev = 432.99 μs
min    = 4.25 ms
max    = 6.55 ms
runParser chainl 10000
mean   = 4.25 ms
stddev = 378.51 μs
min    = 4.04 ms
max    = 6.44 ms

chainr 1000

chainr 1000

runParser chainr 1000
mean   = 544.94 μs
stddev = 145.69 μs
min    = 473.00 μs
max    = 1.62 ms
runParser chainr 1000
mean   = 522.75 μs
stddev = 144.74 μs
min    = 450.21 μs
max    = 1.80 ms

chainr 10000

chainr 10000

runParser chainr 10000
mean   = 5.93 ms
stddev = 287.94 μs
min    = 5.28 ms
max    = 6.52 ms
runParser chainr 10000
mean   = 5.85 ms
stddev = 428.71 μs
min    = 5.17 ms
max    = 7.39 ms

manyTill 1000

manyTill 1000

runParser manyTill 1000
mean   = 543.78 μs
stddev = 156.03 μs
min    = 462.94 μs
max    = 1.67 ms
runParser manyTill 1000
mean   = 521.10 μs
stddev = 143.27 μs
min    = 455.98 μs
max    = 1.50 ms
runParser manyTill_ 1000
mean   = 539.00 μs
stddev = 83.94 μs
min    = 480.34 μs
max    = 1.01 ms
runParser manyTill_ 1000
mean   = 524.37 μs
stddev = 80.98 μs
min    = 469.72 μs
max    = 977.16 μs

manyTill 10000

manyTill 10000

runParser manyTill 10000
mean   = 5.60 ms
stddev = 315.68 μs
min    = 5.14 ms
max    = 6.73 ms
runParser manyTill 10000
mean   = 5.48 ms
stddev = 321.86 μs
min    = 5.01 ms
max    = 6.22 ms
runParser manyTill_ 10000
mean   = 5.71 ms
stddev = 184.35 μs
min    = 5.23 ms
max    = 6.21 ms
runParser manyTill_ 10000
mean   = 5.60 ms
stddev = 355.74 μs
min    = 5.14 ms
max    = 6.83 ms

mediumJson

mediumJson

runParser json mediumJson
mean   = 3.72 ms
stddev = 1.11 ms
min    = 3.19 ms
max    = 17.98 ms
runParser json mediumJson
mean   = 3.80 ms
stddev = 1.29 ms
min    = 3.24 ms
max    = 20.41 ms
StringParser.runParser json mediumJson
mean   = 7.22 ms
stddev = 2.20 ms
min    = 6.57 ms
max    = 33.00 ms
StringParser.runParser json mediumJson
mean   = 7.47 ms
stddev = 2.23 ms
min    = 6.73 ms
max    = 33.29 ms

largeJson

largeJson

runParser json largeJson
mean   = 12.48 ms
stddev = 438.66 μs
min    = 11.84 ms
max    = 14.16 ms
runParser json largeJson
mean   = 13.11 ms
stddev = 1.25 ms
min    = 12.20 ms
max    = 24.39 ms
StringParser.runParser json largeJson
mean   = 24.40 ms
stddev = 738.44 μs
min    = 23.40 ms
max    = 28.26 ms
StringParser.runParser json largeJson
mean   = 25.54 ms
stddev = 1.69 ms
min    = 24.12 ms
max    = 37.19 ms

@jamesdbrock jamesdbrock force-pushed the pos-index branch 3 times, most recently from 7b31d81 to 763d456 Compare April 1, 2022 13:02
@jamesdbrock jamesdbrock marked this pull request as ready for review April 1, 2022 13:08
@jamesdbrock jamesdbrock merged commit 9b7beeb into main Apr 7, 2022
@jamesdbrock jamesdbrock deleted the pos-index branch April 7, 2022 08:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant